1. Field of the Invention
This invention relates to software, and more particularly to a system and method for designing or redesigning enterprise applications.
2. Description of the Related Art
Enterprise application development often focuses on service delivery. For example, anytime and anywhere access to needed services with predictable availability, reliability, usability, performance, and security may be major priorities during development. The application architecture may dictate how well these services, among others, can be provided. If the architecture is faulty, or not developed using preferred design techniques across multiple scenarios, a system may be difficult to scale, secure, or rapidly change.
Enterprise applications may also rely on real-time continuous processing for mission critical needs, and not on a traditional service model with scheduled downtime and scheduled batch processing. Achieving an effective and acceptable level of service involves integrating the development of these types of service-oriented capabilities into the architecture design process. In addition to these service goals, enterprise applications may operate in distributed, heterogeneous environments. Thus, processing in a complex system environment may be partitioned across network segments, CPU clusters, and storage locations. The complexity of system environments, and thus the complexity of enterprise applications, not only impacts service goals, but may also impose constraints on rapid development. For example, maintaining redundant code might become an issue since any changes may have to be propagated across various application modules. Also, having multiple objects execute similar functionality may impact application performance and scalability.
Various approaches, methodologies, tools, and practices are available to complement and/or facilitate enterprise software architecture reviews. One model that focuses on architectural analysis is the SunTone Architecture Methodology (SunTone AM) developed by Sun Microsystems, Inc. Under the SunTone AM, design and development follows the creation of an architecture specification. The design and development is organized around functional scenarios at an architectural level, rather than components at a code level.
SunTone AM focuses on high-level architectural considerations more than code level component design and utilization. Components are typically small objects or programs that perform a specific function and are designed to easily operate with other applications or components. Development under the SunTone AM may be component-based, but focuses on reviewing components as utilized to solve problems associated with a specific business domain and how the overall architecture is affected. Thus, functional scenarios may be closely reviewed to ensure the architecture satisfies service goals.
Virtual platforms are available that provide capabilities for enterprise application development. One example virtual platform is J2EE (Java 2 Platform, Enterprise Edition) from Sun Microsystems, Inc. As a distributed computing model, the business presentation for an enterprise application in J2EE may be represented using servlets and/or Java Server Pages (JSPs), and the business logic may run in the form of distributed components such as Enterprise JavaBeans (EJBs). A business interface may be implemented using the Java Messaging Service (JMS). Thus, J2EE provides a convenient platform for enterprise application development, but does not itself address application design practices.